package disjunction.core
{
	import disjunction.core.GameState;
	import disjunction.core.IView;
	import disjunction.core.state.StateChangeEvent;
	import disjunction.core.timing.SimulationTimer;
	
	import flash.events.TimerEvent;

	/**
	 * (abstract) The Controller in the context of the (MVC) GameState.
	 * 
	 * @author Nick Wiggill
	 */

	public class Controller
	{
		public var timer:SimulationTimer;// = new SimulationTimer(0, 0, 0);;
		private var _model:*;
		public var views:Object = {};

		/**
		 * Framework initialisation of the controller and model given appropriate data.
		 * @param timer The timer which will be used to run this controller.
		 * @param data All configuration data for the game, as a custom object. Include
		 * timing values here if appropriate.
		 */
		
		public function initialise(data:Object):void
		{
			
		}
		
		public function update(timeDeltaMs:uint):void
		{
			

		}
		
		public function set model(value:*):void
		{
			_model = value;
		}
		
		public function get model():*
		{
			return _model;
		}
	}
}